home *** CD-ROM | disk | FTP | other *** search
/ PC Media 22 / PC MEDIA CD22.iso / share / udos / gus195 / gus_19.exe / rar / GUS.DOC < prev    next >
Text File  |  1995-03-15  |  80KB  |  1,584 lines

  1.                   ╔══════════════════════════════════════════╗
  2.                   ║       █▀▀▀▀▀▀█  █      █  █▀▀▀▀▀▀█       ║
  3.                   ║       █         █      █  █              ║
  4.                   ║       █   ▀▀██  █     ██  ▀▀▀▀▀▀██       ║
  5.                   ║       █     ██  █     ██  ▄     ██       ║
  6.                   ║       ████████  ████████  ████████       ║
  7.                   ║       ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡       ║
  8.                   ║           General Unpack Shell           ║
  9.                   ║           version 1.95 for DOS           ║
  10.                   ╚══╤═════════════════════════════════════╤═╝
  11.                      │  Copyright (C) 1995 and written by  │
  12.                      │          Johan Zwiekhorst           │
  13.                      │       - ALL RIGHTS RESERVED -       │
  14.                      └─────────────────────────────────────┘
  15.  
  16.  
  17.                        T A B L E   O F   C O N T E N T S
  18.                        *********************************
  19.  
  20.       1. LEGAL STUFF
  21.          The No-Nonsense Licence Statement
  22.          Warranty
  23.          Contact
  24.          Cost and Payment
  25.          What you should have received
  26.  
  27.       2. INTRODUCTION
  28.  
  29.       3. USAGE
  30.          3.1. General Usage under DOS
  31.               SYSTEM REQUIREMENTS
  32.               COMMAND-LINE PARAMETERS
  33.               NOTE
  34.               EXAMPLES
  35.               EXIT CODES
  36.          3.2. Unpacking Mailarchives
  37.          3.3. Identifying Archive Types
  38.  
  39.       4. BUILT-IN DEFINITIONS
  40.          4.1. Built-in Child Program Definitions
  41.          4.2. How To Define Other Unpackers
  42.  
  43.       5. GUS & OTHER SHELLS
  44.  
  45.       6. HOW GUS IDENTIFIES ARCHIVES
  46.          6.1. Recognition patterns as used by GUS
  47.          6.2. Record layout of ARC/ARC+/PAK
  48.          6.3. How GUS identifies SFX (self-extracting) archives
  49.          6.4. Mandatory order of scanning recognition patterns
  50.  
  51.       7. RUNTIME MESSAGES
  52.          [A] General information messages
  53.          [B] Warning messages (non-fatal errors)
  54.          [C] Fatal error messages
  55.  
  56.       8. ACKNOWLEDGEMENTS
  57.  
  58.       9. REVISION HISTORY
  59.  
  60. ═══════════════════════════════════════════════════════════════════════════════
  61.       ╒════════════════╕
  62.       │ 1. LEGAL STUFF │
  63.       ╘════════════════╛
  64.  
  65.       This software is copyrighted (C) 1989, 1990, 1991, 1992, 1993, 1994,
  66.       1995 and written by Johan Zwiekhorst, hereafter called the Author and
  67.       Owner. All Rights Reserved.
  68.  
  69.       The No-Nonsense Licence Statement
  70.       =================================
  71.       This software and everything enclosed with it are protected by both
  72.       Belgian copyright law and international treaty provisions.
  73.       It is called "shareware".
  74.  
  75.       SHAREWARE software may be copied and distributed freely IF:
  76.  
  77.            *  NO FEE IS CHARGED FOR USE, COPYING OR DISTRIBUTION
  78.               (you may recover media and postage expenses, however)
  79.  
  80.            *  IT IS NOT MODIFIED IN ANY WAY.
  81.  
  82.       It may be distributed ONLY in it's original, unmodified compressed
  83.       package file.                                ~~~~~~~~~~
  84.  
  85.       This means you may not add comments to the compressed package file
  86.       (also known as an archive file or simply an archive), nor may you
  87.       delete files from or add files to the archive file, UNLESS YOU HAVE
  88.       A WRITTEN PERMISSION TO DO SO.
  89.  
  90.       Converting the archive file to another compression method or another
  91.       archive file format is allowed, provided that the above conditions
  92.       are met.
  93.  
  94.       The original package as released by me is a self-extracting RAR
  95.       type archive with authenticity verification. RAR is a Russian
  96.       archiver that compresses very well. I made the archive self-
  97.       extracting because I couldn't be sure that everyone would have
  98.       RAR.EXE or UNRAR.EXE.
  99.       At the time this is written, the latest version of RAR is 1.52, so
  100.       look for RAR1_52.EXE. The small freeware UNRAR program is available
  101.       in both a DOS and an OS/2 version. The DOS program can be found
  102.       inside the RAR1_52.EXE package; the OS/2 program is available as a
  103.       separate archive called UNRAR100.ZIP.
  104.       Note, that recompressing the original GUS archive could result in a
  105.       bigger archive.
  106.  
  107.  
  108.       Warranty
  109.       ========
  110.       This software is provided AS IS without any warranty, expressed or
  111.       implied, including but not limited to fitness for a particular
  112.       purpose.
  113.       IN NO EVENT SHALL THE AUTHOR/OWNER OF THIS PRODUCT BE LIABLE FOR
  114.       ANY DIRECT OR CONSEQUENTIAL LOSS OR DAMAGES WHICH MAY HAVE ARISEN
  115.       FROM THE USE OF THIS PRODUCT.
  116.       If your local law does not permit any of the statements made above,
  117.       or if you do not agree with any of them yourself, THEN YOU ARE NOT
  118.       LICENCED TO USE THIS PROGRAM!
  119.  
  120.  
  121.       Contact
  122.       =======
  123.       The Author can be reached via a Bulletin Board System (BBS) and
  124.       electronic mail at the Tripod BBS.
  125.  
  126.       Phone lines:
  127.  
  128.        [due to a move, none are currently available]
  129.  
  130.       Network addresses:
  131.  
  132.       Internet       jz@nfe.be
  133.  
  134.       Compuserve     >INTERNET:jz@nfe.be
  135.                      
  136.       FIDOnet        2:292/100
  137.                      2:292/118
  138.  
  139.  
  140.       Main support BBS:
  141.       (please call this system while Tripod BBS is off-line)
  142.  
  143.       Tornado Belgium BBS, sysop Frank Van Uffelen
  144.  
  145.       Phone lines:
  146.  
  147.       +32-16-640582     V.34
  148.       +32-16-640465     V.34
  149.       +32-16-640466     V.32bis
  150.  
  151.       Network addresses:
  152.  
  153.       Internet       fvu@nfe.be
  154.  
  155.       Compuserve     >INTERNET:fvu@nfe.be
  156.                      
  157.       FIDOnet        2:292/600
  158.  
  159.  
  160.       The Owner can be contacted at the following address:
  161.  
  162.       Johan Zwiekhorst
  163.       Dorpheidestraat 63
  164.       3590 DIEPENBEEK (Belgium)
  165.       Phone [not yet available] during office hours, Central European Time.
  166.  
  167.  
  168.       Cost and Payment
  169.       ================
  170.  
  171.       COMMERCIAL
  172.       ~~~~~~~~~~
  173.       If you would like to use this product in a commercial or
  174.       governmental situation, please contact the Owner at the address
  175.       above. You will then learn the price of the product and a
  176.       Commercial Licence Statement will be made available to you.
  177.       The price of the product varies with the number of licences ordered.
  178.  
  179.       NON-COMMERCIAL
  180.       ~~~~~~~~~~~~~~
  181.       For all others, a small contribution is asked.
  182.       This contribution supports the Author and encourages him to write
  183.       more useful software and keep developing this product.
  184.       Note that this kind of shareware products is developed entirely in
  185.       the Author's leisure time and he receives absolutely no compensation
  186.       for it, apart from what you as a user would pay him.
  187.       I don't believe in crippling the software or otherwise annoying you
  188.       into paying. If you want to keep using it but not pay for it, so be
  189.       it. It's not a very nice attitude, but I'll live.
  190.       Any natural person who really can't afford to pay, is hereby allowed
  191.       to use it for free.
  192.       (Note: if you can afford to buy cigarettes, beer or tickets to your
  193.       local movie theatre regularly, you can also afford to pay for this
  194.       software.)
  195.       This software may also be used for free by those who have made a
  196.       substantial contribution to the Fidonet community, as Vince Perriello
  197.       and Bob Hartman have by creating the BinkleyTerm mailer. Here's to
  198.       ya, guys!
  199.       If you think you deserve to use this software for free as well, then
  200.       write to me.
  201.  
  202.       You may pay whatever you feel this software is worth.
  203.       If you pay at least U.S. $15 (BEF 500, NLG 30, DEM 25), you will
  204.       receive a 3.5" floppy diskette with a personalized "registered"
  205.       version of GUS.
  206.       Immediately after receiving your payment, I will send you an acknow-
  207.       ledgement and a list of the latest versions of all freeware I wrote,
  208.       unless my postage and handling would cost me as much or more than
  209.       what you paid.
  210.  
  211.       Payments to the Author can be sent in cash (no coins please!) to the
  212.       address mentioned above or transferred to the following bank account:
  213.  
  214.       Bank Brussel Lambert (Belgium) - account number 335-0076382-89
  215.  
  216.       People outside Belgium: the cheapest way in which you can pay is
  217.       as follows...
  218.       Go to your bank and ask for one banknote of 500 Belgian franks.
  219.       It will have a blue print. Put the banknote in an envelope together
  220.       with a nice letter expressing your immense gratitude for creating GUS
  221.       :-) and send it to me. Make sure the banknote is not visible through
  222.       the envelope!
  223.  
  224.       ***NOTE THAT THIS IS FOR NON-COMMERCIAL SITUATIONS ONLY!
  225.  
  226.       For all payments made: please specify NAME and VERSION NUMBER of
  227.       the product!
  228.  
  229.       Payments are valid for THREE sub-versions of the software.
  230.       (The number before the dot in the version number indicates the main
  231.       version, the digit right after the dot is the sub-version and the
  232.       digit after that one indicates a patch or bugfix.)
  233.       This means that if you paid for version 1.6x, your payment is valid
  234.       until version 1.90 is released - then you should renew it.
  235.  
  236.       Consider this: GUS v1.00 was released in 1989 and GUS v1.95 in 1995.
  237.       So we're talking about 10 sub-versions (0 to 9) in 6 years. If this
  238.       licence had been valid from day one, you should have paid three times
  239.       for GUS in these six years. That also means that GUS would cost you
  240.       an average of about $7.50 per year. Not exactly backbreaking, is it?
  241.  
  242.       Contributions received thusfar for GUS:
  243.  
  244.       NON-COMMERCIAL                    COMMERCIAL
  245.       ~~~~~~~~~~~~~~                    ~~~~~~~~~~
  246.       Belgium       :  8 people         (none)
  247.       Canada        :  1 person
  248.       Italy         :  1 person
  249.       Netherlands   :  1 person
  250.       United Kingdom:  1 person
  251.       United States :  2 people
  252.  
  253.       Impressive, huh? :-}
  254.  
  255.  
  256.       What you should have received:
  257.       ==============================
  258.  
  259.       You should have received the file
  260.  
  261.       GUS_195.EXE - (47275 bytes)
  262.  
  263.       with the following contents:
  264.  
  265.       ┌──────────┐  ┌─────┐ ┌─────────────────────────┐
  266.       │ filename │  │bytes│ │ description             │
  267.       └══════════┘  └═════┘ └═════════════════════════┘
  268.       FILE_ID .DIZ     357  Short description for BBS sysops.
  269.       GUS     .DOC   80328  This documentation.
  270.       GUS     .EXE   14978  The program file.           CRC/32 = d26e8d16
  271.       GUS_WCFG.PAS    7026  TP source for a program     CRC/32 = b2068b2f
  272.                             that writes a new configur-
  273.                             ation into GUS.EXE.
  274.  
  275.       While viewing, testing or unpacking this self-extracting RAR archive,
  276.       it should display the following message on your screen:
  277.                ┌────────────────────────────────────────────┐
  278.                │ Verifying authenticity information ...  Ok │
  279.                │                                            │
  280.                │ Archive GUS_195.EXE                        │
  281.                │ modified at 19:50:00  15 Mar 1995          │
  282.                │ by Johan Zwiekhorst                        │
  283.                └────────────────────────────────────────────┘
  284.  
  285.       You may also use the program VALIDATE from McAfee Associates for
  286.       the purpose of checking the authenticity of the program file(s).
  287.       It should produce the following if you're using VALIDATE v0.4:
  288.  
  289.                 File Name:  gus.exe       gus_wcfg.pas
  290.                      Size:  14,978        7,026
  291.                      Date:  3-15-1995     3-15-1995
  292.       File Authentication:
  293.            Check Method 1 - CED2          7171
  294.            Check Method 2 - 0EF3          0A9A
  295.  
  296.       and the following if you're using VALIDATE v2.00 and up:
  297.  
  298.       Validate version 2.00 Copyright (c) McAfee, Inc. 1994.
  299.       All rights reserved.   (408) 988-3832  EVALUATION COPY
  300.       Directory of GUS\
  301.  
  302.       GUS      EXE     14978  03-15-95   19:50   2D91   72E9
  303.       GUS_WCFG PAS      7026  03-15-95   19:50   4DF9   74D0
  304.  
  305.         3 file(s) were validated
  306.  
  307.  
  308.       GUS is available for several operating systems:
  309.  
  310.       ┌──────┐ ┌────────┐  ┌─────────────────────────────┐
  311.       │system│ │look for│  │comment                      │
  312.       └══════┘ └════════┘  └═════════════════════════════┘
  313.        DOS      GUS_*.*     current release: GUS_195.EXE
  314.        OS/2     GUS2_*.*    (will be available starting with v2.00)
  315.        Win/NT   GUSw_*.*    (not yet available, but does anyone want this?)
  316.  
  317.  
  318.       ╒═════════════════╕
  319.       │ 2. INTRODUCTION │
  320.       ╘═════════════════╛
  321.  
  322.       The General Unpack Shell, or GUS, identifies compressed file types
  323.       and calls the correct unpacker in order to extract the files from
  324.       them.
  325.       Its main purpose is, of course, to take work out of YOUR hands.
  326.       You can use GUS with its straight-forward and easy to remember
  327.       commands instead of having to learn a new set of commands each time
  328.       a new archiver sees the daylight.
  329.  
  330.       GUS will also work nicely in automated tasks, where any type of
  331.       archive has to be uncompressed, or where a certain file should be
  332.       added to any given archive.
  333.  
  334.       GUS was made to be command-line compatible with the ARCE.COM
  335.       unpacker program by Vernon Buerg.  This makes it possible for you
  336.       to rename GUS.EXE to ARCE.COM and have it invoked by any program
  337.       that expects both ARCE and SEA's ARC-type compressed files, so that
  338.       such a program will in fact work with any archive format YOU
  339.       choose. Ben Baker's MAKENL is but one example of such a program.
  340.  
  341.       GUS does not require you to fiddle with cumbersome and difficult
  342.       configuration files: it's just a single EXE file.  You copy it into
  343.       your favourite utility directory and you can immediately start
  344.       using it, no hassles at all.
  345.  
  346.  
  347.       ╒══════════╕
  348.       │ 3. USAGE │
  349.       ╘══════════╛
  350.  
  351.       GUS assumes you have located all archiver programs it has to invoke
  352.       somewhere in your system PATH.
  353.       GUS is small and it will only occupy about 30K while shelling out
  354.       to other programs, which should leave more than enough memory for
  355.       those archiver programs.
  356.  
  357.       3.1. General Usage under DOS
  358.       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  359.       SYSTEM REQUIREMENTS:
  360.       --------------------
  361.       GUS will run on any IBM PC compatible computer running DOS 3.0 or
  362.       greater, provided that at least 32K plus the memory needed by the
  363.       largest archiver program to invoke is available.
  364.  
  365.       COMMAND-LINE PARAMETERS:
  366.       ------------------------
  367.       As said before, GUS is command-line compatible with ARCE.
  368.       Hence, the general syntax is:
  369.  
  370.       GUS «compressed_filespec» [filespec(s)] [target_path] [switch(es)]
  371.  
  372.       (Entries enclosed within [] are optional, those within « » are
  373.       mandatory.  The [] and « » signs serve to indicate this only and
  374.       should never be typed!)
  375.  
  376.       «compressed_filespec»  ::=  this specifies where to find the
  377.                                   compressed file.  If an extension
  378.                                   is not given, GUS will assume '.*'.
  379.                                   Currently, the following archive types
  380.                                   are supported: ARC and ARC+, ARJ, DWC,
  381.                                   HA, HAP, HPK, HYP, LZH (both LHarc and LHA),
  382.                                   PAK, RAR, SQZ, UC2, ZIP and ZOO.
  383.  
  384.       [filespec(s)]          ::=  specifies which files should be
  385.                                   unpacked. You may give more than one
  386.                                   file specification, all of which may
  387.                                   contain wildcards.
  388.  
  389.       [target_path]          ::=  specifies where to locate the unpacked
  390.                                   files.  In order to allow GUS to be as
  391.                                   flexible as possible, the ordering of
  392.                                   the file specifications and the target
  393.                                   path is not important.  You may define
  394.                                   the target path first and then the
  395.                                   files to be extracted.  It is even
  396.                                   allowed to put the target path in the
  397.                                   middle of a number of specifications of
  398.                                   files to extract!  If you give more
  399.                                   than one directory, GUS will ignore all
  400.                                   but the last.
  401.  
  402.       [switch(es)]           ::=  specifies one or more of the following
  403.                                   switches...
  404.          /D     :  Delete archive after successful unpacking
  405.          /I     :  Identify only, don't shell out (see 3.3 below)
  406.          /M     :  unpack Mailarchives only (see 3.2 below)
  407.          /N     :  do Not use embedded path while extracting
  408.                    (for the sake of compatibility with ARCE, /5 may also be
  409.                    used)
  410.          /P     :  Print file(s) on standard output device
  411.          /Q     :  Quiet mode, suppresses shell output
  412.          /R     :  Replace existing files
  413.          /S     :  Scan for viruses in unpacked files
  414.          /T     :  Test archive integrity
  415.          /V     :  View archive contents
  416.          /Bdir  :  Bad archives will be moved to the specified directory
  417.          /Gpswd :  supply password 'pswd' for Garbled archive
  418.  
  419.       All parameters have to separated by at least one blank.  Switches
  420.       may be joined together without spaces, but the '/' character must
  421.       be present for each switch.  GUS does not support the dash '-'
  422.       instead of the slash '/'.
  423.       Options may be given in no matter what case. Only the Delete option
  424.       _has_ to be in uppercase for safety reasons.
  425.  
  426.       NOTE:
  427.       -----
  428.       Consistent with ARCE's behaviour, GUS will create any directories
  429.       contained within an archive if they do not exist.  Both ARCE and GUS
  430.       have a commandline switch with which you can prevent this and have
  431.       them extract to the current directory.
  432.       If you are using the /M (mail archive) switch however, use of the
  433.       /N (No embedded paths) switch is automatically assumed and unpacking
  434.       will always be done in the specified inbound mail directory.
  435.       With /M, the option /D (Delete archive after successful unpacking) is
  436.       also automatically selected.
  437.       The /N switch is equally automatically invoked with /P (print) and /T
  438.       (test).
  439.       Since SEA's XARC program cannot list the directory of an ARC+ (A7+)
  440.       archive, GUS will switch to the program configured for the regular
  441.       ARC type instead in order to execute the View Contents command.
  442.  
  443.       EXAMPLES:
  444.       ---------
  445.       1) Extract all files from an archive CFILE.ANY:
  446.          > GUS CFILE.ANY
  447.  
  448.       2) Extract all *.COM and *.EXE files from an archive UTILS.ANY
  449.          into a target directory D:\Utils, replacing all existing ones
  450.          and performing a virus scan on the unpacked files:
  451.          > GUS UTILS.ANY *.COM *.EXE D:\UTILS /R/N/S
  452.  
  453.       3) A batchfile LA.BAT which will list any text file inside any
  454.          archive:
  455.          LA.BAT: @echo off
  456.                  GUS %1 %2 %3 %4 %5 %6 %7 %8 %9 /P|LIST/S
  457.  
  458.          Now you can use this:   LA KBUI_202 *.DOC
  459.  
  460.       4) Test the integrity of all archives in the directory F:\Arcs
  461.          > GUS F:\ARCS\* /T
  462.  
  463.       5) Unpack all ZIPfiles PW*.ZIP protected with password JiMmY into
  464.          the directory D:\PWS, not replacing any existing files and using
  465.          embedded paths, if any:
  466.          > GUS PW*.ZIP D:\PWS /GJiMmY
  467.  
  468.       EXIT CODES:
  469.       -----------
  470.       GUS will yield an errorlevel of 0 if all operations succeeded or
  471.       if only non-fatal errors (warnings) occurred.
  472.       If something's wrong, it will pass on the errorlevel returned by
  473.       the child program invoked.
  474.       If the child program could not be started, GUS will return
  475.       errorlevel 202 = no such program file found in PATH
  476.                  203 = non-existing directory
  477.                  204 = too many open files (increase FILES=... parameter
  478.                        in your CONFIG.SYS file)
  479.                  205 = access denied
  480.                  206 = invalid handle
  481.                  208 = not enough memory to start the child program
  482.                  210 = invalid environment
  483.                  211 = invalid format
  484.                  218 = no more files
  485.       If the child program could be started but something else is wrong,
  486.       GUS will return
  487.       errorlevel   1 = for all errors not reported in the list below
  488.                  220 = no such (mail) directory
  489.                  221 = no such file(s)
  490.                  222 = the last archive file handled is bad or of
  491.                        a type unknown to GUS and the unpacker program
  492.                        (if at all started) returned an errorlevel of 0
  493.                  255 = bad configuration data appended to GUS.EXE
  494.  
  495.       Note, that GUS will not be able to search the PATH environment
  496.       variable after the 255th character, if your PATH should be that long.
  497.  
  498.  
  499.       3.2. Unpacking Mailarchives
  500.       ~~~~~~~~~~~~~~~~~~~~~~~~~~~
  501.       If you are a BBS SysOp or a Point connected to a Fidonet Technology
  502.       compatible electronic mail network, you receive mail packets
  503.       compressed and bundled within mailarchives.  You obviously need to
  504.       unpack those mailarchives.
  505.       You can do that in two ways:
  506.  
  507.       α) Have your mailprocessor call GUS to unpack the mailarchives.
  508.  
  509.        + If your mailprocessor allows you to specify which unpacker it
  510.          should invoke to decompress mailarchives, have it call GUS.
  511.          Example for ConfMail:
  512.          > CM IMPORT AREAS.BBS -K -N -F Conf.Imp -A GUS
  513.          This approach has the disadvantage that GUS will create any
  514.          directories embedded in the archive, should these not exist.
  515.          Another disadvantage is, that the mailprocessor is still in memory.
  516.          This occupies a lot more memory than is necessary.
  517.  
  518.        + If your mailprocessor does not allow you to specify which
  519.          unpacker to use, it will most likely expect ARCE or PKXARC/
  520.          PKUNPAK.  Rename GUS.EXE to ARCE.COM or PKXARC.EXE or
  521.          PKUNPAK.EXE, whatever your mailprocessor wants.
  522.          If your mailprocessor wants to use an unpacker that needs a
  523.          specific decompress command (like PAK E Archive), you cannot
  524.          have it call GUS, since GUS would interpret its first
  525.          command-line argument as the archive name.
  526.          Use the method described in the next paragraph to have GUS
  527.          unpack your mailarchives BEFORE your mailprocessor is started.
  528.          Since your mailprocessor will only see mail packets then and no
  529.          mailarchives, there will be no problem.
  530.  
  531.       ß) Have GUS unpack all mailarchives BEFORE you invoke your
  532.          mailprocessor.
  533.          --> This is the preferred method. <--
  534.          You do this by starting GUS with the following command-line:
  535.  
  536.          GUS «Inbound_directory» /M
  537.  
  538.          Instead of the archive name, you specify the path to the
  539.          directory where your inbound mail is located.
  540.          Suppose your inbound directory is D:\Opus\NetFiles.  GUS will
  541.          unpack all mailarchives in that directory with the following
  542.          command:
  543.          > GUS D:\OPUS\NETFILES /M
  544.  
  545.          After a mailarchive has been unpacked succesfully, GUS will
  546.          delete it automatically.
  547.          If a mailarchive cannot be unpacked succesfully, then GUS will
  548.          create a subdirectory BADARC.GUS in your inbound directory and
  549.          move that mailarchive to it.  This allows you to inspect the
  550.          problematic mailarchives later on while retaining their original
  551.          name.  Other unpack shells always rename a faulty archive to
  552.          BADARC.001, which makes it very difficult if you would like to
  553.          restore the archive to its original name after you have
  554.          inspected and maybe repaired it.  I didn't like that procedure,
  555.          so I decided to let GUS move problematic archives to a special
  556.          subdirectory instead.  Let me know how you feel.
  557.  
  558.  
  559.       3.3. Identifying Archive Types
  560.       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  561.       With the /I switch, you can have GUS simply report which archive
  562.       type is at hand and do nothing else.
  563.       This switch can be used just to get a list of archive types, like
  564.       this:
  565.       > GUS J:\Outbound\*.MO? /I
  566.  
  567.       Type Archive Filename
  568.       ---- ----------------
  569.       LZH  J:\OUTBOUND\0009FE64.MO1
  570.       ???  J:\OUTBOUND\8FDCB1E2.MO1
  571.       ZIP  J:\OUTBOUND\8FDCB243.MO0
  572.       ARJ  J:\OUTBOUND\FF24FFE9.MO0
  573.       LZH  J:\OUTBOUND\8FDCB241.MO0
  574.  
  575.       GUS yields something like the above list.  The '???' means that GUS
  576.       was unable to determine the archive type, possibly because it isn't
  577.       an archive at all.  In this case, it was a zero-length file.
  578.  
  579.       A much more useful way of using this switch is to determine the
  580.       type of just one archive and act upon that.  For instance, to add a
  581.       file to any archive that comes along.
  582.  
  583.       If used with /I, GUS will return an errorlevel from 0 to 15,
  584.       indicating the archive type.
  585.  
  586.       Archive Type: Unknown ARC ARC+ ARJ DWC  HA HAP HPK HYP LZH PAK
  587.       Errorlevel  :    0      1   2    3   4   5   6   7   8   9  10
  588.       Archive Type:         RAR SQZ  UC2 ZIP ZOO
  589.       Errorlevel  :          11  12   13  14  15
  590.  
  591.       ATTENTION! These errorlevels will be returned ONLY if /I is used and
  592.       ~~~~~~~~~~ NO OTHER values are possible then.
  593.  
  594.       Example: suppose you want to add a header text LOGO.TXT to ZIP and
  595.       ARJ files, and leave other archive types alone.
  596.       These batchfile instructions will take care of that:
  597.  
  598.         GUS %1 /I
  599.         if not errorlevel 15 if errorlevel 14 goto IsZIP
  600.         if not errorlevel  4 if errorlevel  3 goto IsARJ
  601.         goto Finish
  602.       :IsZIP
  603.         PKZIP -z %1 <LOGO.TXT
  604.         goto Finish
  605.       :IsARJ
  606.         ARJ c -zLOGO.TXT %1
  607.       :Finish
  608.  
  609.       Please be advised that the errorlevel codes assigned to each archive
  610.       type may change! If a new archive type is added to GUS, its extension
  611.       will be merged into the list shown above so that the order of the
  612.       extensions is alphabetical. If you don't like this and would rather see
  613.       new types simply be added to the end of the list, let me know. I will
  614.       comply with your wishes if enough people feel like that.
  615.       At this time, I like to have an alphabetical list and so do most of the
  616.       people I asked about this.
  617.  
  618.  
  619.       ╒═════════════════════════╕
  620.       │ 4. BUILT-IN DEFINITIONS │
  621.       ╘═════════════════════════╛
  622.  
  623.       4.1. Built-In Child Program Definitions
  624.       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  625.       The following child programs are defined by default within GUS.EXE:
  626.  
  627.       α] Virus Scanner/Detector
  628.       ╔════════════╤═════════╗
  629.       ║Program     │Options  ║
  630.       ╟────────────┼─────────╢
  631.       ║SCAN    .EXE│. /NOMEM ║
  632.       ╚════════════╧═════════╝
  633.       This is the program from McAfee, Inc. The options direct it to scan
  634.       the current directory only (which will be the target directory in
  635.       which the archive was unpacked by the time the detector is called),
  636.       but not to scan the computer's memory for viruses.
  637.       
  638.       ß] Archive Unpackers
  639.       ╔════╤════════════╤═══════╤═══════╤═══════╤═════╤═════╤═════╤════════╗
  640.       ║Type│Program     │Extract│Replace│Display│Test │View │Path │Password║
  641.       ╟────┼────────────┼───────┼───────┼───────┼─────┼─────┼─────┼────────╢
  642.       ║ARC │PKUNPAK .EXE│-n     │-r     │-c     │-t   │-v   │*****│g       ║
  643.       ║A7+ │XARC    .EXE│       │/o     │*****  │*****│*****│*****│/g      ║
  644.       ║ARJ │ARJ     .EXE│e -uy  │e -y   │p      │t    │l    │<x   │─g      ║
  645.       ║DWC │DWC     .EXE│xow    │xw     │p      │t    │v    │r    │g       ║
  646.       ║HA  │HA      .EXE│et     │ety    │*****  │t    │l    │<x   │*****   ║
  647.       ║HAP │PAH     .EXE│e      │e      │*****  │**** │l    │*****│*****   ║
  648.       ║HPK │HPACK   .EXE│x -on  │x -oa  │p      │t    │v    │-da  │-c      ║
  649.       ║HYP │HYPER   .EXE│-x     │-xo    │*****  │*****│-v   │p    │*****   ║
  650.       ║LZH │LHA     .EXE│e /m+  │e /m+c+│p /m+  │t /m+│l    │x+   │*****   ║
  651.       ║PAK │PAK     .EXE│e/WO   │e/WA   │p      │t    │l    │/PATH│/g=     ║
  652.       ║RAR │UNRAR   .EXE│e -o-  │e -o+  │p      │t    │l    │<x   │-p      ║
  653.       ║SQZ │SQZ     .EXE│e /o0  │e /o1  │p      │t    │l    │<x   │*****   ║
  654.       ║UC2 │UC      .EXE│E      │E -F   │$PRF   │T    │V    │-S   │*****   ║
  655.       ║ZIP │PKUNZIP .EXE│-n     │-o     │-c     │-t   │-v   │-d   │-s      ║
  656.       ║ZOO │ZOO     .EXE│e:O    │e:OS   │e:p    │e:N  │lC   │//   │*****   ║
  657.       ╟────┼────────────┼───────┼───────┼───────┼─────┼─────┼─────┼────────╢
  658.       ║ 3  │    12      │  10   │  10   │  10   │ 10  │ 10  │  5  │   5    ║
  659.       ╚════╧════════════╧═══════╧═══════╧═══════╧═════╧═════╧═════╧════════╝
  660.       The numbers above indicate the number of characters provided for
  661.       each string.
  662.  
  663.       Note that Extract, Replace, Display, Test and View are COMMANDS,
  664.       while Path and Password are OPTIONS.  The difference is, that an
  665.       OPTION is always combined with a COMMAND and cannot be used alone.
  666.       If the first character of the Path option is a `<', however, it means
  667.       that the second character should be used to replace the first command
  668.       string character. This is, for instance, the case with ARJ, HA, RAR and
  669.       SQZ, who all need the `e' command to be replaced with `x' in order to
  670.       extract files while using embedded path information.
  671.  
  672.       All spaces means that that particular program does not need any
  673.       parameters for that particular command.
  674.  
  675.       All stars means that that particular program does not support that
  676.       command or that option.
  677.  
  678.       NOTE: the $PRF command for the UC rev. 2 archiver will actually print
  679.       files to the printer and not to StdOut as we would like to have it.
  680.       The solution is easy enough, though. UC.EXE will call a batchfile
  681.       U2_PRINT.BAT to actually do the printing. Rename the current
  682.       batchfile to *.OLD and create a new U2_PRINT.BAT containing only
  683.       the following three lines:
  684.  
  685.                 @echo off
  686.                 echo.
  687.                 type %1
  688.  
  689.       That's all! (Notice no space between `echo' and `.' in the second
  690.       line.) Now the output will go to StdOut.
  691.  
  692.       ATTENTION! When encountering an ARC sfx made by SEA's MKSARC program,
  693.       GUS will identify it correctly, but PKUNPAK can't handle this sfx and
  694.       will therefore exit with an error. If you expect to handle a lot of
  695.       MKSARC sfx files, then you'd better replace PKUNPAK by ARC 6.02 in
  696.       GUS' configuration segment.
  697.  
  698.       You may want to redefine some of those built-in definitions for
  699.       various reasons. To use another unpacker program, for instance.
  700.       Or to change some parameters.
  701.  
  702.  
  703.       4.2. How To Define Other Unpackers
  704.       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  705.       There are two ways to modify the built-in definitions.
  706.  
  707.       You can grab a hex editor and change GUS.EXE directly. (The unpacker
  708.       definitions were appended to GUS.EXE, so you'll find them at the end
  709.       of the file.)
  710.       If you do, please take note of the lengths of the strings as listed
  711.       above in section 4.1. All strings occupy the specified number of
  712.       characters. To achieve that, they were padded with spaces where
  713.       necessary. When you edit them, make sure you retain the number of
  714.       characters and do NOT change the funny looking character at the start
  715.       of each string (that's in fact the string length indicator byte).
  716.       If a particular parameter is not supported by a certain unpacker
  717.       program, then you should edit the appropriate field to contain all
  718.       stars.
  719.  
  720.       If you own a Turbo Pascal compiler v5.0 or later from Borland
  721.       International, you can edit the file GUS_WCFG.PAS and re-compile it.
  722.       This small program will update the configuration information at the
  723.       end of GUS.EXE for you. Do *NOT* modify the record layout of that
  724.       information, since GUS will not recognize it anymore if you do.
  725.  
  726.       Future versions of GUS may come with a complete setup program to
  727.       edit and save a new configuration, or have a text configuration file.
  728.       I haven't decided yet which way to go. If you have any comments on
  729.       the subject, I would be glad to hear them. Please write to me via
  730.       email or any other means.
  731.  
  732.  
  733.       ╒═══════════════════════╕
  734.       │ 5. GUS & OTHER SHELLS │
  735.       ╘═══════════════════════╛
  736.  
  737.       Since GUS was first created, other authors have joined the club and
  738.       released their own versions of a utility that identifies archive
  739.       types and shells out to the appropriate unpacker programs.
  740.  
  741.       Some of those other shell programs come with source, others don't.
  742.       Some have configuration files, others don't.
  743.       Some are large, others small.
  744.       Only one is GUS and all the others "ain't"! :-)
  745.  
  746.       Why should you use GUS?
  747.  
  748.       1. GUS is small and fast. Other shell programs typically use a lot
  749.          more memory than GUS does.
  750.       2. GUS provides you with all possible commands to allow not only
  751.          automatic use, but also easy DOS command-line usage.
  752.       3. While scanning a file to determine the archive type, the
  753.          identification bytes have to be investigated in a well-defined
  754.          order. Only then, the program will not be fooled by things like
  755.          archives within archives.
  756.          GUS is the only program that does this flawlessly: it will never
  757.          be fooled.
  758.       4. GUS has built-in code especially designed for archives that have
  759.          their identification code at the end of the file.  If such an
  760.          archive has been transmitted by means of a protocol like
  761.          X-modem, some junk may have been appended to the file to make it
  762.          grow to the next 128 byte or even 1 K-byte boundary!
  763.          GUS is the *only* program that will recognize an archive with
  764.          appended junk because it can skip that while scanning.
  765.          (At this time, this is only needed for DWC archives, but you
  766.          never know...)
  767.       5. The HAP&PAH, HPack and DWC archivers require their compressed files
  768.          to have the respective extension '.HAP', 'HPK' and '.DWC' or else
  769.          they won't work with them. GUS knows this and will rename any such
  770.          archive that does not have the proper extension before calling
  771.          the dearchiver program and rename it back to the original name
  772.          afterwards.
  773.          (Well, actually, HPack 0.79 and higher have an option which
  774.          will allow you to use another extension but since the renaming
  775.          code was already in GUS for the previous version of HPack, I
  776.          decided not to use this option.)
  777.       6. Because *I* wrote it! <grin>
  778.  
  779.  
  780.       ╒════════════════════════════════╕
  781.       │ 6. HOW GUS IDENTIFIES ARCHIVES │
  782.       ╘════════════════════════════════╛
  783.  
  784.       GUS recognizes archives by searching for well-defined patterns in the
  785.       archive file. Such a pattern can be from 1 to 7 bytes in length and
  786.       it is extremely important that they be checked in the PROPER ORDER!
  787.       That is what distinguishes GUS from all it's competitors: most
  788.       programs do search for the right patterns (with the exception of the
  789.       pattern for ZOO, which is almost always wrong), but don't do this in
  790.       the proper order. That can result in faulty identifications,
  791.       specifically when encountering nested archives (archives within
  792.       archives).
  793.  
  794.       6.1. Recognition patterns as used by GUS
  795.       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  796.       ArcType Offset  Pattern         Comment
  797.       ------- ------  ------------    -------------------------------
  798.       ARC     0       0x1A
  799.       ARC+    0       0x1A            Method byte (offset 1) of all
  800.       PAK                             entries needs to be scanned: if
  801.       HYP                             >= 0x0A then PAK;
  802.                                       >= 0x48 then HYP;
  803.                                       == 0x14 then ARC+
  804.                                       Note: PAK can also be recognized
  805.                                       by locating the byte 0xFE at offset
  806.                                       EOF-2, but GUS doesn't use that
  807.                                       because it is less accurate than
  808.                                       scanning the method bytes, which
  809.                                       has to be done anyway for identi-
  810.                                       fying ARC+ and HYP.
  811.                                       For completeness, the record layout
  812.                                       of an ARC archive will be given in
  813.                                       paragraph 6.2.
  814.       ARJ     0       0x60 0xEA
  815.       HA      0       'HA'            Offset 4 binary ANDed with 0xFC should
  816.                                       yield 0x20. This is an additional check
  817.                                       that GUS performs.
  818.       DWC     -3      'DWC'           Offset -3 means the third LAST byte
  819.                                       of the archive file.
  820.                                       It is possible that some junk is
  821.                                       present at the end of an archive,
  822.                                       because of Xmodem transmissions for
  823.                                       example.
  824.                                       In order to avoid GUS not recognizing
  825.                                       the archive because of this, the last
  826.                                       1028 bytes (or 343 triplets) are read
  827.                                       into a buffer and if that buffer
  828.                                       contains the string 'DWC', then we
  829.                                       have a DWC archive.
  830.                                       An additional check will be done,
  831.                                       however. The `DWC' string will have
  832.                                       to be the last item in a 27 byte
  833.                                       structure of which the first two
  834.                                       items are ArcStrucSize=27 (word size:
  835.                                       2 bytes) and DirStrucSize=34 (byte
  836.                                       size) before GUS will accept the file
  837.                                       to be a DWC archive.
  838.       LZH     2       '-l??-'         The '?' specifies a wildcard
  839.                                       character.
  840.       HAP     0       0x91 '3HF'
  841.       HPK     0       'HPAK'
  842.       UC2     0       'UC2' 0x1A
  843.       ZIP     0       'PK' 0x03 0x04
  844.       ZOO     20      0xDC 0xA7 0xC4 0xFD
  845.                                       Most other programs search for the
  846.                                       string 'ZOO' at the front of the
  847.                                       archive, but that is wrong! Only
  848.                                       the ZOO archives made using Rahul
  849.                                       Dhesi's program would be recognized
  850.                                       this way. ZOO archives made by an
  851.                                       Amiga or a computer running Unix
  852.                                       would not necessarily be recognized!
  853.       SQZ     0       'HLSQZ'
  854.       RAR     0       'Rar!' 0x1A 0x07 0x00
  855.  
  856.  
  857.       6.2. Record layout of ARC/ARC+/PAK
  858.       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  859.  
  860.       The record which describes each archive entry:
  861.             .--------------------------------------------------.
  862.             |var                                               |
  863.             |  ArcHeader : record                              |
  864.             |                Marker: Byte;                     |
  865.             |                Method: Byte;                     |
  866.             |                Name  : array [1..13] of char;    |
  867.             |                Size  : DWord;                    |
  868.             |                Stamp : DWord;                    |
  869.             |                CRC   : Word;                     |
  870.             |                Length: DWord;                    |
  871.             |              end;                                |
  872.             `--------------------------------------------------'
  873.  
  874.       Procedure to scan all archive entries:
  875.             .--------------------------------------------------.
  876.             |begin                                             |
  877.             | seek(F, 0);                                      |
  878.             | Done := false;                                   |
  879.             | YieldARC := ARC;                                 |
  880.             | repeat                                           |
  881.             |   {$I-}                                          |
  882.             |   blockread(F, ArcHeader, sizeof(ArcHeader));    |
  883.             |   {$I+}                                          |
  884.             |   if IOresult = 0                                |
  885.             |    then begin                                    |
  886.             |          if ArcHeader.Method >= PAKid            |
  887.             |           then begin                             |
  888.             |                 Done := true;                    |
  889.             |                 YieldARC := PAK;                 |
  890.             |                 if ArcHeader.Method >= HYPid     |
  891.             |                  then YieldARC := HYP            |
  892.             |                  else if ArcHeader.Method = ARPid|
  893.             |                        then YieldARC := ARp      |
  894.             |                end                               |
  895.             |           else MoveFilePtr(F, ArcHeader.Size);   |
  896.             |         end                                      |
  897.             |    else Done := true                             |
  898.             | until Done                                       |
  899.             |end;                                              |
  900.             `--------------------------------------------------'
  901.  
  902.       This is of course all in Turbo Pascal, the language in which GUS was
  903.       written. The above are in fact literal excerpts from GUS's source
  904.       code.
  905.  
  906.  
  907.       6.3. How GUS identifies SFX (self-extracting) archives
  908.       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  909.       The basic principle is simple. A self-extracting archive consists of an
  910.       extraction program in EXE form followed by the archive itself as
  911.       appended data.
  912.       The header of an EXE file contains information to determine the size of
  913.       the EXE portion of the file and hence the offset where the appended data
  914.       starts.
  915.       This proved to be true for all archive types, except for SFXs made by
  916.       MKSARC, the ZIP/sfx as used in PKLTE115.EXE and the ZIP/sfx for OS/2.
  917.       GUS has those offset values hardcoded.
  918.       Should you encounter other self-extracting archive types which GUS
  919.       doesn't recognize, please let me know. Don't forget to mention,
  920.       however, by which program those self-extractors were made.
  921.  
  922.  
  923.       6.4. Mandatory order for scanning recognition patterns
  924.       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  925.               1 - RAR
  926.               2 - SQZ
  927.               3 - ZIP
  928.               4 - HPK
  929.               5 - UC2
  930.               6 - HAP
  931.               7 - ZOO
  932.               8 - LZH
  933.               9 - HA
  934.              10 - ARJ
  935.              11 - DWC
  936.              12 - ARC/ARC+/PAK/HYP
  937.  
  938.       This order is mandatory because it guarantees the greatest chance
  939.       for a correct recognition.
  940.       Every other order would increase the chance for a faulty result.
  941.       This is also the reason why the archive specifications are still
  942.       built into GUS and not given in a seperate configuration file
  943.       (like the one used by Jeffrey Nonken's PolyXarc, for example):
  944.       I still haven't found a good method to have GUS determine auto-
  945.       matically in which order the patterns have to be scanned, if a
  946.       possibility exists that new patterns would be added to the list.
  947.       I can't expect the users to include new patterns in the proper
  948.       order themselves, can I? Therefore, I don't think providing GUS
  949.       with a CFG file is very important at this time. I see no problem
  950.       for providing a new GUS when a new and exciting archiver is
  951.       released.
  952.  
  953.       That's it folks! If you're curious: the Borland Pascal source for
  954.       GUS is about 1100 lines in length. Those lines are `filled' in the
  955.       same way as those of the procedure quoted above.
  956.  
  957.       *** NOTE: you may use the scanning and identification method as
  958.       used by GUS and as described above in your own programs, but
  959.       please be so kind and don't forget the reference indicating where
  960.       you got the information!
  961.  
  962.  
  963.       ╒═════════════════════╕
  964.       │ 7. RUNTIME MESSAGES │
  965.       ╘═════════════════════╛
  966.  
  967.       GUS may produce a number of messages while it's working.
  968.       I will list all messages below, with an explanation what's wrong.
  969.  
  970.       [A] General information messages
  971.       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  972.       MESSAGE: Child program returns exit code #
  973.       -> this message is given when the invoked unpacker program returns
  974.          control to GUS.  It shows the errorlevel returned by the
  975.          unpacker program.  The "#" will be replaced by the actual
  976.          exit code.
  977.  
  978.       [CHILD]: «unpacker_commandline»
  979.       -> this is shown in Quiet mode (/Q switch) instead of the
  980.          archiver's screen output.  The «unpacker_commandline» will be
  981.          replaced by just that.
  982.  
  983.       Extract: ALL files (XARC cannot extract specific files)
  984.       -> this message is shown when the first four characters of the
  985.          unpacker program definition string are "XARC".  Any files to
  986.          extract specified on the command-line will be ignored.
  987.  
  988.  
  989.       [B] Warning messages (non-fatal errors)
  990.       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  991.       WARNING: multiple target directories defined -- will use the LAST one!
  992.       -> you have defined more than one target path on the command-line.
  993.          GUS warns you that it will ignore all paths but the last.
  994.  
  995.       WARNING: you need to use /D (capital!) to have the unpacked archive
  996.                deleted.
  997.       -> you have specified "/d" in lower case. For security reasons, GUS
  998.          will only accept a capital D for the Delete switch.
  999.          The unpacked archive will not be deleted.
  1000.  
  1001.       WARNING: unknown switch /X ignored
  1002.       -> you have specified a switch that GUS doesn't know.  In the above
  1003.          warning message, the "X" will be replaced by the actual
  1004.          character (converted to upper case) that you used.
  1005.          GUS will continue but ignores this unknown switch.
  1006.  
  1007.       WARNING: a slash by itself is not a valid option -- ignored
  1008.       -> you have typed a slash "/" followed by a space or an end-of-line.
  1009.          GUS will continue and ignore this.
  1010.  
  1011.       WARNING: unknown parameter #9 «X» ignored
  1012.       -> you have typed something on the command-line that GUS can't
  1013.          decipher.  The actual word you typed will be inserted instead of
  1014.          "X" in the above message, and the number of that parameter on
  1015.          the commandline will be shown instead of the "9" above.
  1016.  
  1017.       WARNING: can't open NUL device -- Quiet command ignored
  1018.       -> this occurs most often if the /Q (Quiet) command is used and when
  1019.          one or more TSRs were loaded with their output redirected to NUL.
  1020.          This yields a DOS sharing violation error, hence this message from
  1021.          GUS.
  1022.  
  1023.       WARNING: unable to determine archive type due to error
  1024.                while opening file
  1025.       -> for some reason, GUS can't open the file it has to investigate.
  1026.          Bummer! GUS will simply skip it and continue with the next one, if
  1027.          any.
  1028.  
  1029.       WARNING: «XXXXXXXXX.XXX» suddenly disappeared!
  1030.       -> GUS was working with an archive file which suddenly vanished.
  1031.          Perhaps you're using a multitask or multiuser system and another
  1032.          task deleted or moved the file? Anyway, GUS will report it and
  1033.          try to continue working as best as it can.
  1034.  
  1035.       WARNING: cannot create new filename for rename or move! (Disk full?)
  1036.       -> while trying to rename (like when an archiver needs a fixed
  1037.          extension) or move (like when a mailarchive couldn't be
  1038.          unpacked) a file, GUS increments the filename (in case of a
  1039.          fixed extension) or the extension (in case of a bad archive)
  1040.          when it at first doesn't succeed with the rename or move.
  1041.          If the filename or extension cannot be incremented anymore and
  1042.          no other options are left, GUS issues the above error message.
  1043.  
  1044.       WARNING: cannot erase incomplete target «XXXXXXXX.XXX»
  1045.       WARNING: cannot erase original after successful copy «XXXXXXXX.XXX»
  1046.       -> these warnings can occur when GUS was trying to move a file
  1047.          (normally a bad archive) to another drive, when the file has to
  1048.          be physically copied and after successful completion deleted.
  1049.          If something goes wrong during a physical copy, GUS will abort
  1050.          the copy and delete the incomplete target. If that isn't
  1051.          possible, the first warning is issued.
  1052.          If the copy was successful, GUS will delete the original file so
  1053.          only the identical target will remain. If the original cannot be
  1054.          deleted for whatever reason, GUS will issue the second warning.
  1055.  
  1056.       WARNING: moving bad archive HHHHHHHH.XXX to d:\badarcdir\
  1057.       -> in mail unpack mode (/M switch), GUS was unable to unpack an
  1058.          archive and warns you that it will be moved to the BADARC.GUS
  1059.          subdirectory that GUS creates in the mail inbound directory, or
  1060.          to the directory specified by the /B switch.
  1061.          This warning will also be shown without in normal mode, but only
  1062.          if /B was used.
  1063.          The actual name of the bad archive will be inserted in the
  1064.          message instead of "HHHHHHHH.XXX" and "d:\badarcdir" will be
  1065.          replaced by the path to the default or specified bad archive
  1066.          directory.
  1067.  
  1068.       WARNING: cannot erase unpacked archive!
  1069.       -> in mail unpack mode (/M switch) or if the Delete option (/D switch)
  1070.          was used, GUS is unable to delete the archive after it has been
  1071.          unpacked successfully.
  1072.          This more than likely means that the archive was marked
  1073.          Read/Only.  You will have to unlock and delete it manually.
  1074.          As mailarchives are created fresh upon receipt, it is very
  1075.          unlikely that they would be marked R/O.
  1076.  
  1077.       WARNING: unsupported command -- will do normal extract instead
  1078.       -> you tried to perform an action not supported by the particular
  1079.          archiver defined within GUS (i.e., issue a /T [test] command
  1080.          with the HYPER archiver program).
  1081.          GUS warns you it will ignore that command and do a normal
  1082.          extract instead.
  1083.  
  1084.       WARNING: XXX type cannot be unpacked into embedded directories!
  1085.       -> the unpacker program has no option to enable using embedded
  1086.          directories or creating them, so all unpacking will be done
  1087.          into the current directory, since that is the only way.
  1088.  
  1089.       WARNING: XXX type cannot be garbled - ignoring password...
  1090.       -> you supplied an extraction password for an archive whose
  1091.          unpacker program does not support password-protection.
  1092.          GUS will continue the command while ignoring the /G switch.
  1093.          The "XXX" will be replaced by the actual archive type detected.
  1094.  
  1095.       WARNING: the password option cannot contain a `<' character - IGNORED.
  1096.       -> this warning message is of course not possible when using GUS
  1097.          from the DOS commandline, since DOS will interpret all `<`, '>'
  1098.          and '|' symbols first, providing GUS with arguments not
  1099.          containing those symbols.
  1100.          If GUS is called from another program, it is of course possible
  1101.          to include this type of illicit symbols in various commands or
  1102.          options. If you do, this warning will be given.
  1103.  
  1104.       WARNING: can't rename fixed extension back to original, leaving as is...
  1105.       -> GUS had to rename an archive to a name with the fixed extension
  1106.          required by archivers like DWC, HAP&PAH or HPACK and now it can't
  1107.          rename the file back to the original name. This can normally only
  1108.          happen in a multitasking environment, for instance when the archive
  1109.          file was renamed, moved or deleted before GUS could rename it back.
  1110.          GUS issues this error message and leaves the file as it was.
  1111.  
  1112.       WARNING: switching to ARC type program for directory of A7+ archive
  1113.       -> if the program XARC is configured for handling A7+, GUS will
  1114.          switch to the archiver program configured for the ARC type for
  1115.          viewing the archive contents (directory), since XARC has no
  1116.          command to do it and both PKUNPAK and SEA's ARC 6.02 will list
  1117.          the directory of an ARC+ archive just fine.
  1118.  
  1119.       WARNING: error locating directory XXX
  1120.                will unpack in current directory.
  1121.       -> You specified a target directory GUS was unable to find.  The
  1122.          target path specification will be ignored and the unpacking will
  1123.          be done in the current directory.
  1124.  
  1125.       WARNING: «XXX» is no archive file or a type unkown to GUS!
  1126.       -> GUS encountered a file that is not one of the known archive
  1127.          types.  GUS will continue with the next file, if there is one.
  1128.          "XXX" will be replaced by the actual archive name.
  1129.          GUS will not abort, but if this was the LAST archive processed
  1130.          then it will return errorlevel 222.
  1131.  
  1132.  
  1133.       [C] Fatal error messages
  1134.       ~~~~~~~~~~~~~~~~~~~~~~~~
  1135.       >ERROR<: cannot read configuration information!
  1136.       MESSAGE: aborting with exit code 255...
  1137.       -> GUS complains it can't find the configuration information at the
  1138.          bottom of its EXE file.  This means something is terribly wrong
  1139.          with that EXE file.  You better delete it and get the original
  1140.          release archive unpacked again!  (You *did* save that one,
  1141.          didn't you?)
  1142.  
  1143.       >ERROR<: DOS couldn't execute «XXX» due to: YYY
  1144.       -> GUS was unable to load and execute the specified child program.
  1145.          The path and name of that child program will be inserted in the
  1146.          error message instead of "XXX" and the reason will be shown
  1147.          instead of "YYY".  That reason will be one of 9 possible
  1148.          problems described in section 3.1. "General Usage under DOS",
  1149.          EXIT CODES. If the error code returned by DOS should be unknown
  1150.          to GUS, it will display "DOS ERROR" followed by the error number
  1151.          instead.
  1152.  
  1153.       >ERROR<: no such file(s)!
  1154.       -> GUS was started with an archive filename specification, but no
  1155.          such file could be found.  GUS will abort with errorlevel 221.
  1156.  
  1157.       >ERROR<: no such mail directory!
  1158.       -> you specified a mail inbound directory (/M switch) that GUS was
  1159.          unable to locate.  GUS will end with errorlevel 220.
  1160.  
  1161.  
  1162.       ╒═════════════════════╕
  1163.       │ 8. ACKNOWLEDGEMENTS │
  1164.       ╘═════════════════════╛
  1165.  
  1166.     + PKUNPAK  FAST!  Archive Extract Utility  Version 3.61  08-02-88
  1167.       Copyright (c) 1986-1988 PKWARE Inc. All Rights Reserved.
  1168.  
  1169.     + PKUNZIP (R)    FAST!    Extract Utility    Version 2.04g  02-01-93
  1170.       Copr. 1989-1993 PKWARE Inc. All Rights Reserved. Shareware Version
  1171.       PKUNZIP Reg. U.S. Pat. and Tm. Off.
  1172.  
  1173.     + XARC - to decompress a standard ARC Format Archive, Ver 7.1,
  1174.       October, 1990
  1175.       Copyright 1990 by System Enhancement Associates, Inc.;
  1176.       ALL RIGHTS RESERVED
  1177.  
  1178.     + ARJ 2.41 Copyright (c) 1990-93 Robert K Jung. Jun 03 1993
  1179.       All Rights Reserved.  U.S. Patent No. 5,140,321 and patent pending.
  1180.  
  1181.     + DWC - Archive utility, Release 5.10, Created 3/07/90
  1182.       (C) Copyright 1986-90 by Dean W. Cooper; All rights reserved.
  1183.  
  1184.     + HA 0.999ß Copyright (c) 1995 Harri Hirvola
  1185.  
  1186.     + Hamarsoft (R) Hap&Pah TM 3.00
  1187.       Copyright (C) 1992 By Harald Feldmann.
  1188.       Publicly Distributed evaluation copy.
  1189.  
  1190.     + HPACK - The multi-system archiver Version 0.78a0 (shareware version)
  1191.       For Amiga, Archimedes, Macintosh, MSDOS, OS/2, and UNIX
  1192.       Copyright (c) Peter Gutmann 1989 - 1992.  Release date: 1 Sept 1992
  1193.  
  1194.     + Hyper - Pack Utility 2.5
  1195.       Copyright (c) 1989,1990 P. Sawatzki and K.P. Nischke
  1196.  
  1197.     + LHA version 2.55b   Copyright (c) Haruyasu Yoshizaki, 1988-92
  1198.  
  1199.     + Pak 2.51 Copyright 1988-90 NoGate Consulting
  1200.  
  1201.     + RAR 1.52      Copyright (c) 1993-94 Eugene Roshal      17 August 1994
  1202.       Registered to Johan Zwiekhorst
  1203.  
  1204.     + SQZ -- Squeeze It(1.08.3), Jan 24 1993, Copyright J I Hammarberg
  1205.  
  1206.     + ░███   ░███  ░████      UltraCompressor II (tm)  revision 2
  1207.      ░█  ░█   ░█   ░█  ░█     "The new way of archiving."
  1208.      ░█████   ░█   ░████  -NL "Fast, reliable and superior compression."
  1209.      ░█  ░█   ░█   ░█ ──────────────────────────────────────────────────
  1210.      ░█  ░█  ░███  ░█ (C) Copyright 1994, Ad Infinitum Programs,
  1211.                        all rights reserved
  1212.  
  1213.     + Zoo archiver, Version 2.10 (1991/07/09 02:10:34)
  1214.       (C) Copyright 1991 Rahul Dhesi -- Noncommercial use permitted
  1215.  
  1216.     + ARCE Copyright (c) 1986-92 Vernon D. Buerg.
  1217.       Extract ARC files, Version 4.1a, 4/12/92. All rights reserved.
  1218.  
  1219.     + Conference Mail - Revision: 4.07 by Bob Hartman, FidoNet Node 132/101
  1220.       (C) Copyright 1986, 1987 by Spark Software Inc. All rights reserved.
  1221.  
  1222.     + █     █  █▀▀▀▀█ █     █ █▀▀▀▀▄  █    █ ▀▀█▀▀
  1223.       █   ▄▀   █      ▀▄   ▄▀ █    █  █    █   █
  1224.       █▄▄█     █▄▄▄     ▀█▀   █▀▀▀▀▄  █    █   █
  1225.       █▌  ▀▄   █▌        █▌   █▌   █▌ █▌   █   █▌
  1226.       ██   ▐█  ██▄▄██    ██   ██▄▄▄█  ██▄▄▄█ ▄▄██▄
  1227.       ╓──────────────────────────────────────────╖
  1228.       ║    Keyboard driver U.S. International    ║
  1229.       ╙──────────────────────────────────────────╜
  1230.             Copyright (C) 1994 and written by
  1231.                     Johan Zwiekhorst
  1232.                   ·ALL·RIGHTS·RESERVED·
  1233.           ═════════════════════════════════════
  1234.                       version  2.02
  1235.           ─────────────────────────────────────
  1236.       KEYBoard driver U.S. International (KEYBUI)
  1237.       will allow you to type accented characters,
  1238.       draw text graphic characters, blank your
  1239.       screen and more!  All this in a very easy way
  1240.       and with a standard U.S. QWERTY keyboard.
  1241.       Takes only 1.5K while resident.
  1242.  
  1243.     + Scan V.2.1.0 Copyright (c) McAfee, Inc. 1994.  All rights reserved.
  1244.  
  1245.  
  1246.       ╒═════════════════════╕
  1247.       │ 9. REVISION HISTORY │
  1248.       ╘═════════════════════╛
  1249.  
  1250.       Ver.   Comment
  1251.       ~~~~   ~~~~~~~
  1252.   --> 2.00   [will be released in a few months, probably mid 1995]
  1253.               or should I call it GUS'95 and keep pushing back the
  1254.               release date each few months? :-)
  1255.            = Please write to me and let me know what new features you would
  1256.              like to see in GUS. Ideas so far:
  1257.               + archiver output in a pop-up window;
  1258.               + a full-screen version of GUS with nice colours;
  1259.               + interactive full-screen GUS with pull-down menues
  1260.                 (this would make it a direct competitor for SHEZ, but I'm
  1261.                 not sure if I want to devote my time to this since I think
  1262.                 SHEZ is very good);
  1263.               + OS/2 version;
  1264.               + Win/NT or Win32 version - if people want it. So far, no
  1265.                 requests for this.
  1266.            = So let me know what you think!
  1267.  
  1268.       1.95   [15-Mar-1995]
  1269.            ! This is the _LAST_ version that will run on Intel 8088 or
  1270.              8086 CPUs! For all versions hereafter, you will need at
  1271.              least a NEC V20 or Intel 80188 (or equivalent) CPU.
  1272.            + Some people want to redirect GUS' output to a logfile and
  1273.              have asked me to provide for a more modest title screen for
  1274.              GUS. So here it is. In case of redirection, the big header
  1275.              will remain on screen while a small one is written to the
  1276.              target device or file.
  1277.            * New: people who register will now receive a "personalized"
  1278.              version of GUS.
  1279.            * New: /S will invoke a virus detector in order to scan
  1280.              the freshly unpacked files for viruses.
  1281.            * New: /Bdir will move bad or unknown archives to the specified
  1282.              directory. Attention! Files resulting from an abrupted unpack
  1283.              will not be deleted by GUS.
  1284.              Thanks to Vic Bates (2:250/143.16) for his suggestions.
  1285.            ! GUS will from now on be released in another archive format.
  1286.              I used LZH thusfar because it is cheap (as in free) and has a
  1287.              very good compression. Unfortunately, it doesn't have
  1288.              authenticity verification. So I waited until another archiver
  1289.              appeared on the scene which would compress better than LHA,
  1290.              have authenticity verification and a FREE unpack program.
  1291.              RAR meets these requirements. Therefore, GUS will from now on
  1292.              be released in a self-extracting RAR archive with authenticity
  1293.              verification and archive lock enabled. Any tampering with the
  1294.              archive will remove the authenticity OK message.
  1295.              The self-extraction code will of course make the archive file
  1296.              size larger than it should be, but since RAR is a very new
  1297.              archiver I didn't want to assume everyone would have the
  1298.              UNRAR.EXE or RAR.EXE programs in their possession. If RAR
  1299.              becomes as widespread as ZIP or LZH, I will release future
  1300.              versions of GUS in a non-sfx RAR archive.
  1301.  
  1302.       1.91   [05-Oct-1994]
  1303.            - While unpacking mailarchives, GUS would return errorlevel 0 if
  1304.              the archive type could not be detected or if there was
  1305.              something else wrong and the unpacker program didn't report
  1306.              it. This could cause the mailprocessor to delete an
  1307.              unprocessed file. Fixed. GUS will now return errorlevel 222 if
  1308.              the _last_ file encountered could not be handled properly.
  1309.              If GUS is dealing with mailarchives (/M switch), unknown types
  1310.              will be handled the same as bad mailarchives and thus moved to
  1311.              the special BADARC.GUS subdirectory.
  1312.              Thanks to Gerard van der Land (2:2802/110) for pointing this
  1313.              out to me.
  1314.            + Changed several messages from '>ERROR<' to 'WARNING' since
  1315.              they don't cause GUS to abort.
  1316.            + Changed the licence from 'freeware' to 'shareware'. Payment
  1317.              for non-commercial situations is still on a more or less
  1318.              voluntary basis, though.
  1319.  
  1320.       1.90   [07-Aug-1994]
  1321.            * Supported the new Russian archiver RAR.
  1322.              It performs about comparable to the Dutch UC2 archiver.
  1323.            * Supported some new features of UltraCompressor II revision 2.
  1324.            - A system error would occur when GUS was used in an OS/2 DOS
  1325.              session and needed to shell out to one of the fixed extension
  1326.              archivers (DWC/HAP/HPK). That was due to a lack of stack space
  1327.              for GUS. Corrected. GUS now uses a stack of 8192 bytes.
  1328.  
  1329.       1.80   [05-Feb-1994]
  1330.            * Supported the new Dutch archiver UltraCompressor II (UC2).
  1331.              It performs consistently better than either PKZIP or ARJ, but HA
  1332.              and HPACK are still the best compressors around (albeit very
  1333.              slow).
  1334.            * Added the '/V' (View archive contents) command. Originally, I
  1335.              wanted to implement my own archive lister. However, since I still
  1336.              don't have the exact layout for a couple of archive types, I
  1337.              didn't want to keep you waiting any longer and provided the lister
  1338.              by shelling out to the appropriate archiver.
  1339.            + The GUS help screen will now also be shown when the user types
  1340.              GUS /?, GUS -?, GUS /h, GUS -h, GUS /H or GUS -H.
  1341.              Suggested by Hans Siemons (2:512/149).
  1342.            - If the drive is full (0 bytes free), GUS is unable to move
  1343.              a bad mailarchive away. GUS v1.70 would check the drive space
  1344.              and abort the move if less than 32 bytes would be free.
  1345.              32 bytes is indeed what's needed to create a new directory entry,
  1346.              but unfortunately this doesn't help much since DOS always needs
  1347.              the size of one cluster to allocate new space.
  1348.              This version of GUS will therefore check if at least the size of
  1349.              one cluster (or 256 bytes for HPFS volumes) is free.
  1350.              Error reported by Peter Smink (2:285/1).
  1351.            - GUS file /I will yield errorlevel 221 if the file doesn't exist,
  1352.              instead of errorlevel 1 reported by the previous version which was
  1353.              confusing (since it could also mean GUS found an ARC archive).
  1354.              Changed two errorlevels:
  1355.              ERROR                   ErrLev v1.70  ErrLev NOW
  1356.              ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^  ^^^^^^^^^^
  1357.              No Such Mail Directory! 0             220
  1358.              No Such File(s)!        1             221
  1359.              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  1360.              Problem reported by Kianusch Sayah-Karadji (2:310/3.80) and
  1361.              Alex Cleynhens (2:292/500).
  1362.            ! Just in case you were wondering: I'm using Borlands BPwO v7.0
  1363.              these days for compiling GUS. No, the sourcecode for GUS doesn't
  1364.              contain any OOP. I wanted to keep GUS small and OOP has a tendency
  1365.              to blow the size of EXE files to huge proportions.
  1366.  
  1367.       1.70   [14-Apr-1993]
  1368.            * Added support for the Dutch HAP archive format, which compresses
  1369.              at least 10% better than PKZIP v2.04.
  1370.            * Added support for the Finnish HA archiver, which beats PKZIP
  1371.              v2.04 by more than 20%!
  1372.            * Added the "/D" or Delete option.
  1373.            * Added detection of SFX (self-extracting) archives.
  1374.              GUS will recognize all EXE variants of the known archive types.
  1375.              Note: GUS can't handle COM self-extractors made by LHarc 1.xx,
  1376.              only the EXE sfx version.
  1377.            - If the drive is full (0 bytes free), GUS is unable to move
  1378.              a bad mailarchive away. It would take quite some time before
  1379.              GUS would give up trying, though. Fixed: GUS will check
  1380.              the drive space and abort the move if less than 32 bytes are
  1381.              free. (32 bytes is what's needed to create a new directory entry.)
  1382.            - If a file could not be opened for the purpose of determining
  1383.              the archive type, a runtime error 103 resulted. Fixed.
  1384.              Added a message: «WARNING: unable to determine archive type due
  1385.              to error while opening file».
  1386.            - Some people experienced strange `runtime 162' errors.
  1387.              Here's what happened...
  1388.              GUS tried to open the NUL device and create it. Some environments
  1389.              may have objected to that.
  1390.              I changed the code so that the NUL device is opened for writing
  1391.              only (no creation) and only if the /Q option is used, not always
  1392.              like before.
  1393.              This still caused some systems to yield that runtime error, so I
  1394.              added an error check and disabled the Quiet mode in case the NUL
  1395.              device cannot be opened. That should solve the `runtime 162'
  1396.              problem once and for all...
  1397.              Added a message: «WARNING: can't open NUL device -- Quiet command
  1398.              ignored».
  1399.              (This problem appeared mostly with systems that loaded TSRs and
  1400.              redirected their output to the NUL device. That causes DOS to
  1401.              open but never close the NUL device, so when GUS tries to open
  1402.              it, a sharing violation (runtime 162) occurs.)
  1403.              Thanks to Wim Van Sebroeck, 292/862 and Bert Hubert, 2:281/506.40
  1404.              for assisting me in finding a fix for this.
  1405.  
  1406.       1.61   [21-Sep-1992]
  1407.            - Fixed a bug which caused GUS to use the wrong archive name
  1408.              when operating with an archiver that requires a fixed archive
  1409.              extension (DWC and HPK at this time).
  1410.  
  1411.       1.60   [20-Sep-1992]
  1412.            * Added support for the HPACK archiver from Peter Gutmann, which
  1413.              makes the absolutely smallest archives at this time.
  1414.            * Added support for the Swedish SQZ archiver, which compresses
  1415.              better than ARJ 2.30 or the new PKZIP 1.93a!
  1416.            + Previously, the first three archive types were: ARC (#1), ARJ
  1417.              (#2) and ARC+ (#3). From now on, ARC+ will be #2 and ARJ #3.
  1418.              This is more logical. (The reason for the previous order was
  1419.              that GUS uses the abbreviation ARp internally for ARC+, and
  1420.              ARp comes after ARJ alphabetically.)
  1421.            - Due to a string length mismatch, GUS couldn't tell whether
  1422.              UsePath or UsePassword options were supported or not. The
  1423.              UsePath problem was reported by Wim Van Sebroeck (2:292/862)
  1424.              and by checking that, I discovered that the same was true for
  1425.              the UsePassword option. Corrected.
  1426.            + Added code to allow the Path option to replace a command
  1427.              instead of being added to it. (Indicated by `<' as the first
  1428.              character in the Path option in GUS_WCFG.PAS)
  1429.              Only needed for ARJ and SQZ at this time. (The previously used
  1430.              `e -jf' for ARJ doesn't seem to work equal to `x', so that was
  1431.              changed.)
  1432.            - GUS `forgot' about the specification indicating which files had
  1433.              to be extracted, once an ARC+ type archive had been worked on.
  1434.              Reported by Wim Van Sebroeck (2:292/862) and fixed.
  1435.            - If the specified target directory ended with a backslash (\),
  1436.              GUS wouldn't recognize it as the target directory. Reported by
  1437.              Wim Van Sebroeck (2:292/862) and fixed.
  1438.            + Extract command for ARJ changed from `e -n' to `e -uy' and
  1439.              modified some other archiver parameters in order to make the
  1440.              behaviour of various archiver programs more homogenious.
  1441.              GUS without /R option:
  1442.              (1) XARC and HYPER will ask you if they should overwrite older
  1443.                  files. Unfortunately, these programs have no command
  1444.                  options to work in batchmode and avoid this.
  1445.              (2) HPACK will never overwrite older files because it doesn't
  1446.                  have an option for this.
  1447.              (3) all other archivers will overwrite older files and skip
  1448.                  the rest.
  1449.              GUS with /R will cause existing files always to be
  1450.              overwritten.
  1451.            + If someone would combine several real commands on the GUS
  1452.              commandline, the effects might not be what one desires.
  1453.              Example: GUS * /T /R would start unpacking when one would
  1454.              expect it to ignore the replace command and do a test only.
  1455.              So I have changed the behaviour. The /T command now has priority
  1456.              over all other commands. This means that if you specify multiple
  1457.              commands, the /T (test) command will be executed and all others
  1458.              ignored. If you specify /P and /R, the /P has a higher priority
  1459.              and will be executed. The /R will be ignored. The priority of a
  1460.              command increases if it can do less damage. So the priority order
  1461.              for the GUS commands is in descending order: /I /T /P /R
  1462.              (remember: the other switches are options, not commands!).
  1463.              This problem was discovered after a tip by Alex Cleynhens
  1464.              (2:292/500).
  1465.            + Additional check for DWC archives. Apart from the string `DWC'
  1466.              in the last 1K of the file, it is now required that this string
  1467.              is the last item in a 27 byte structure for the file to be
  1468.              identified as a DWC archive.
  1469.            - GUS reported a runtime error when trying to rename an archive to
  1470.              a fixed extension and if the new name existed already. Reported
  1471.              by Wim Van Sebroeck (2:292/862). Fixed: the name is now
  1472.              incremented. Modified the routine which moves bad mailarchives
  1473.              to the BADARC.GUS subdirectory as well: if a file with the
  1474.              same name already exists in the BADARC.GUS subdirectory, the
  1475.              extension of the file to be moved is incremented.
  1476.            - GUS had a problem if the target directory was a root directory.
  1477.              In that case, it specified only the drive instead of the root
  1478.              directory. Reported by Wim Van Sebroeck (2:292/862). Fixed.
  1479.            - HPACK seems to require that its archives have a fixed extension
  1480.              of .HPK (like DWC does). GUS directory /M /T doesn't move bad
  1481.              archives into the BAD_ARC.GUS directory. Reported by Peter Smink
  1482.              (2:285/1). Fixed.
  1483.            ! Various changes to the documentation.
  1484.  
  1485.       1.50   [15-Feb-1992]
  1486.            * Added the /N (/5) switch to prevent GUS using or creating
  1487.              paths embedded within archives.
  1488.            + Made this switch automatic while working with mail archives
  1489.              (/M).  Thanks to John Lots (2:512/36.3@fidonet.org) and Eef
  1490.              Hartman (2:281/603.5) for suggesting this and detecting the
  1491.              problem with this in GUS 1.40.
  1492.              /N is now also automatically invoked with /P and /T.
  1493.            + Changed the way the configuration information is stored a bit,
  1494.              since there was a useless amount of space being reserved for
  1495.              the "Unknown" type, which of course shouldn't have been saved.
  1496.            - Fixed a minor problem which caused a runtime error when
  1497.              GUS.EXE was given a read/only attribute.  Thanks to Rob
  1498.              Essers (2:283/406.2) for reporting this.
  1499.            ! Cleaned up the batchfile listing in section 3.3 a bit.
  1500.              Thanks to Roelof Heuvel (27:3331/5000@signet.ftn) for the
  1501.              suggestion.
  1502.            - Fixed a minor problem which caused GUS to not append '.*'
  1503.              to a filename given without an extension when the pathame
  1504.              would contain a dot somewhere.  Thanks to Hans Siemons
  1505.              (2:285/214@fidonet.org) for reporting it.
  1506.            - Because of a space inserted between the appropriate switch to
  1507.              supply a password to an unarchiver and the actual password it-
  1508.              self, encrypted archives could never be unpacked. This is now
  1509.              fixed.
  1510.            ! Made minor modifications for PKUNZIP 2.00, due to some changes
  1511.              in the way that one handles its command options.
  1512.            - The `use path' option was always supplied with the ZOO unpack
  1513.              commands. Corrected.
  1514.  
  1515.       1.40   [25-Jun-1991]
  1516.            + Removed MDCD archive support again, since nobody was likely
  1517.              to use it -- unless you're looking for the worst performing
  1518.              archiver ever, of course.
  1519.            * Added support for the new LHA version 2 archiver from Yoshi,
  1520.              which succeeds LHARC.  The previous version of GUS could
  1521.              already handle the new compression, but I didn't expect the
  1522.              name of the program to be changed.
  1523.            * Added support for the ARJ archiver program from Robert K.
  1524.              Jung, which yields nearly always the best compression and
  1525.              has a lot of features.
  1526.            * Added support for the HYPER archiver program from Germany,
  1527.              which seems to outperform every other archiver on 600..800K
  1528.              logfiles ONLY.  Weird.
  1529.            * Added support for ARCfiles made by the new ARC version 7
  1530.              compressor from SEA.  At this time, only one public domain
  1531.              extractor is available, which unfortunately lacks almost
  1532.              every feature GUS has to offer.
  1533.              My thanks to Donn Bly (1:236/7@fidonet.org) and Jeffrey
  1534.              Nonken (1:273/715@fidonet.org) for providing me with all the
  1535.              information on the ARC7+ archive format and the XARC
  1536.              program.
  1537.            ! GUS is now fully commandline compatible with Vernon Buerg's
  1538.              ARCE program.  All of ARCE's switches are supported - except
  1539.              for /5, which prevents ARCE from creating subdirectories
  1540.              contained within ARCfile entries.
  1541.            * GUS provides two extra options: /I will identify an archive
  1542.              type by means of the exitcode (errorlevel) and /M will
  1543.              unpack and delete mailarchives in Fidonet Technology
  1544.              Networks.
  1545.            - BUGFIXES:
  1546.              = cleaned up handling zero-length and read/only files.
  1547.                From now on, GUS won't abort with a runtime error on
  1548.                those. 
  1549.              = you could only specify one single file to extract on GUS's
  1550.                commandline, although the help screen and manual suggested
  1551.                you could give more than one filespec.
  1552.                That's also corrected now, so you can indeed specify
  1553.                multiple files.
  1554.            * OTHER IMPROVEMENTS:
  1555.              = the code which detects the archive type has been completely
  1556.                re-written and now is a *lot* faster than before!
  1557.  
  1558.       1.31   [1990]
  1559.            ! This version was never released, but mentioned in the
  1560.              documentation of the ARCA*Simulator v2.31 (ASIM_231.LZH).
  1561.  
  1562.       1.30   [1989]
  1563.            ! This version was never released, but mentioned in the "Latest
  1564.              Software Versions" column of the FidoNews magazine.
  1565.  
  1566.       1.20M  [1989]
  1567.            * Added MDCD archives, corrected an error which made GUS not
  1568.              recognize uncompressed file entries in an LZH archive, made sure
  1569.              the new compression method of PAK is supported, added features to
  1570.              allow selection of files and target directory for unpacking.
  1571.              This is a maintenance release, hence the 'M' behind the version
  1572.              number.
  1573.  
  1574.       1.10   [1989]
  1575.            * Added LZH archives, and changed the way DWC archives are
  1576.              identified in order to identify them even if up to 1K of rubbish
  1577.              is appended to the end of a DWC archive. This is useful for DWC
  1578.              archives which have been transferred by means of an Xmodem
  1579.              protocol.
  1580.  
  1581.       1.00   [1989]
  1582.            ! Base version.  (Turbo Pascal 5.0)
  1583. _______________________________________________________________________(eof)__
  1584.